#pragma once

typedef struct list {
    struct list* next;
    int data;
}list_t;

extern list_t *new_list_node(int data);   //�½�һ�����
extern list_t *list_add(list_t *list, int data);   //ͷ�巨����һ�����
extern void list_destroy(list_t *list);  //��������
extern list_t *list_delete_node(list_t *list, list_t *node);  //ɾ��ĳ������
extern list_t *list_delete(list_t *list, int data);  //ɾ��ĳ��λ�õĽ��
extern list_t *list_index_of(list_t *list, int index);   //����ĳ��λ�õĽ��
extern void list_print(list_t *list);   //��ӡ��������